package br.com.simplex.util;

import java.util.Arrays;
import java.util.List;

import br.com.simplex.analex.Estado;
import br.com.simplex.analex.Token.Tipo;

public class Constantes {

	public static final List<Character> ALFABETO = Arrays.asList('a', 'b', 'c',
			'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
			'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
	public static final List<Character> DIGITOS = Arrays.asList('1', '2', '3',
			'4', '5', '6', '7', '8', '9', '0');
	public static final List<Character> OPERACOES = Arrays.asList('+', '-',
			'=', '>', '<');
	public static final List<Character> ESPACOS = Arrays
			.asList(' ', '\r', '\t');

	public static final Estado ESTADO_INICIAL = new Estado();
	public static final Estado ESTADO_VARIAVEL = new Estado(true, Tipo.VARIAVEL);
	public static final Estado ESTADO_NUMERO = new Estado(true, Tipo.NUMERO);
	public static final Estado ESTADO_NUM_VARIAVEL = new Estado(true,
			Tipo.NUM_E_VARIAVEL);
	public static final Estado ESTADO_SUBJECT = new Estado(true, Tipo.SUBJECT);
	public static final Estado ESTADO_TO = new Estado(true, Tipo.TO);
	public static final Estado ESTADO_MAX = new Estado(true, Tipo.MAX);
	public static final Estado ESTADO_MIN = new Estado(true, Tipo.MIN);
	public static final Estado ESTADO_END = new Estado(true, Tipo.END);
	public static final Estado ESTADO_FIM_LINHA = new Estado(true,
			Tipo.FIM_LINHA);
	/**
	 * Valor que serve apenas de referencia, sera substituido pelo valor de BigM
	 * do problema (10 vezes o maior coeficiente da matriz)
	 */
	public static final double BigM = 10e200;

}
